package com.qilu.careprogram.pojo.dto;

import com.qilu.careprogram.model.enums.DiseaseEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NurseInfoDTO implements Serializable {

    /** 住院号 */
    private String hospitalNumber;

    /** 性别（男/女） */
    private String gender;

    /** 年龄 */
    private Integer age;

    /** 造口类型（输尿管造口/回肠代膀胱/结肠造口/回肠造口） */
    private String stomaType;

    /** 手术日期 */
    private String surgeryDate;

    /** 原发病 */
    private String disease;

    /** 通信地址 */
    private String address;

    /** 电话 */
    private String phone;

    /** 姓名 */
    private String name;

//    /**  回访次数 */
//    private Integer reVisitsNum;

    /**  造口导管(无/有) */
    private String stomaCatheter;

    /**  导管移位(0无/1有) */
    private String catheterDisplacement;

    /**  导管堵塞(0无/1有) */
    private String catheterBlockage;

    /**  导管定期更换(0无/1有) */
    private String catheterReplacement;

    /**  导管备注 */
    private String catheterNotes;

    /**  造口周围皮炎(0无/1有) */
    private String peristomalDermatitis;

    /**  皮肤破损(0无/1有) */
    private String skinDamage;

    /**  皮炎范围 */
    private String dermatitisRange;

    /**  皮炎位置 */
    private String dermatitisLocation;

    /**  泌尿系感染(0无/1有) */
    private String urinaryTractInfection;

    /**  发热(0无/1有) */
    private String fever;

    /**  腰疼(0无/1有) */
    private String backPain;

    /**  腰疼(备注位置） */
    private String backPainNote;

    /**  尿液浑浊(0无/1有) */
    private String cloudyUrine;

    /**  尿液备注 */
    private String cloudyUrineNote;

    /**  运动方式（慢走/爬山/游泳/其他） */
    private String exercise;

    /**  洗浴（\n淋浴正常频次/\n盆浴正常频次/\n淋浴长间隔/\n盆浴长间隔/\n仅擦洗）\n */
    private String bath;

    /**  饮食（正常/流质） */
    private String diet;

    /**  饮水（>3000ml/2000-3000ml/1000-2000ml/<1000ml） */
    private String drink;

    /**  饮食饮水备注 */
    private String dietDrinkNote;

    /**  更换方法(0一般/1熟练) */
    private String replaceMethod;

    /**  更换周期（底盘） */
    private Integer chassisCycle;

    /**  更换周期（袋子） */
    private Integer bagCycle;

    /**  产品获取方式(医院/药店/网络) */
    private String acquisitionMethod;

    /**  备注 */
    private String note;

    public List<String> isExceptionList(){
        List<String> list = new ArrayList<>();
        if(Objects.equals(this.catheterBlockage, DiseaseEnum.catheterBlockage.getIsException())) list.add(DiseaseEnum.catheterBlockage.getDiseaseName());
        if(Objects.equals(this.skinDamage, DiseaseEnum.skinDamage.getIsException())) list.add(DiseaseEnum.skinDamage.getDiseaseName());
        if(Objects.equals(this.urinaryTractInfection, DiseaseEnum.urinaryTractInfection.getIsException())) list.add(DiseaseEnum.urinaryTractInfection.getDiseaseName());
        if(Objects.equals(this.fever, DiseaseEnum.fever.getIsException())) list.add(DiseaseEnum.fever.getDiseaseName());
        if(Objects.equals(this.backPain, DiseaseEnum.backPain.getIsException())) list.add(DiseaseEnum.backPain.getDiseaseName());

        return list;
    }
}
